1. Field of the Invention
The invention relates generally to information processing and more particularly to enterprise application integration systems having connectors providing an interface with a like number of application programs.
2. Description of the Background Art
Enterprise Application Integration (EAI) systems are those that allow a company's internal enterprise applications to operate together. EAI vendors offer a variety of products ranging from a low-level transport technology that must be heavily customized to meet a customer's needs, to integration-specific software tools that help build custom solutions, and to more complete, product-based integration solutions.
EAI systems can be broadly classified under point-to-point systems and hub & spoke systems. A traditional point-to-point integration scheme 100 comprises dedicated custom connectors 101 from each application system pair 102 as depicted in FIG. 1. Another approach is a hub & spoke approach illustrated in FIG. 2. Obviously, a point-to-point architecture is not easily extensible because for each additional application system that needs to be integrated, the number of connectors will increase exponentially. On the other hand, the hub & spoke integration scheme 200 comprises an integration hub (also known as an integration broker) 201 and several spoke connectors (one for each application system 102 to be integrated) as depicted in FIG. 2.
The integration hub 201 typically contains: a generic business object model, a transformation engine that maps all application specific business objects to the generic form and vice versa during the integration process and, a collaboration engine that executes any business process logic that is part of the integration synchronization process.
Whenever a new application needs to be integrated, only a single new connector needs to be added in such a scheme. Since EAI systems are usually poised in the heart of an enterprise's information system, their performance and scalability become critically important.
Although there is no current industry standard benchmark metric (such as the industry standard OLTP benchmark TPC-C for measuring the performance of an integration system, the performance of integration systems typically can be measured using two broad metrics:                Business Process Transactions per unit time: this is a measure of throughput of integration transactions made through the integration hub;        Average Response Time for Synchronous Requests: this is a measure of average latency of a synchronous request made to an EAI system.        
For point-to-point EAI systems, typical scaling solutions involve the manual addition of extra processing spokes (application connectors), each of which unnecessarily complicates management and administration of the overall integration solution. On the other hand, while most hub and spoke EAI systems are fairly well geared in scaling for the integration hub, not much has been done to address the scalability of the spokes (application connectors).
Advances in multiprocessor architecture and sophisticated multithreaded software constructs have very quickly made sequential processing obsolete, especially in the design of scalable mission-critical transaction processing systems. The need for application connector parallelism in EAI systems arises from the fact that most Application Program Interface (API) libraries to which these application connectors are tied, have the following limitations: they lack thread-safety, which precludes the use of multi-threading in the application connector; and they lack re-entrance within the same process, which sometimes restricts application connectors to a single connection, session or activity in the application.
Thus, a single synchronization point in the application connector that serializes all calls to the application, whether for asynchronous event delivery or for synchronous requests, becomes the crux of a performance bottleneck in most application connectors. In other words, in spite of multiple requests coming into the application connector at any point in time, they are all sequentially executed on their entry into the application. This dramatically affects the overall throughput of the system and the latency of individual requests. With the advent of the web-enabled user-interfaces, the need for quicker response times becomes even more critical to an end-user. Most connector architectures do not cater to this need.
For connectors of applications that have thread-safe APIs, there are no inherent scalability problems, since the underlying connector can be multi-threaded and concurrent connections to the underlying applications can be made. However, most APIs are not thread-safe and some applications do not even allow more than one connection from the same process.
FIG. 3 shows a serial-process connector agent architecture 300. The architecture 300 is illustrated by three main components: an integration hub 302, a connector (also known as an adapter) 304, and an application 306. The connector 304 comprises a listener 310, and a single-threaded API 312. The API is not thread safe. In such cases, a mutex 314 needs to be set to lock prior to making the API call. This restricts the use of the application until the mutex is unlocked. This creates a bottleneck in a process which is expected to handle thousands of concurrent requests.
With the advent of the support for call-triggered requests in the e-business arena, the need for quicker response times becomes even more critical. This current connector agent model 300 will obviously not scale, especially if: a high volume of incoming requests comes into the agent; a barrage of application events are generated within a short amount of time; or, both of the above happen concurrently.
Thus, there are two issues that are of critical concern to an end-user: the latency of individual synchronous requests to an EAI system and the need to maximize throughput of the overall event flow through the system. Most API libraries are unable to adequately address these problems because 1) they lack thread-safety, which precludes the use of multi-threading in the application connector and 2) they lack re-entrance within the same process, which sometimes restricts application connectors to a single connection, session or activity in the application. There is thus a need for solutions to the shortcomings discussed above.